/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * v_producto.java
 *
 * Created on 11/04/2011, 12:32:44 AM
 */

package vista;

import controlador.c_producto;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JSpinner;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import patrones.*;
import java.util.*;
import java.awt.event.KeyEvent;


public class v_producto extends javax.swing.JFrame {
     DefaultTableModel modelo_jtabla= new DefaultTableModel();
     c_producto cproducto = new c_producto(this);
     
     Vector<validacion_abstracta> valida_total = new Vector<validacion_abstracta>();
     boolean ya_instancio_l=false;
     boolean ya_instancio_n=false;
     int indice=0;
     int indicel=0;
     int indicen=0;
     
     //valida_total.add(new validacion_abstracta_refinada(new validar_letras()));
     //valida.append = new validacion_abstracta_refinada(new validar_letras());
     //valida[1] = new AbstraccionRefinada(new validar_numeros());
     
    /** Creates new form v_producto */
    public v_producto() {
        initComponents();
        tabla_producto.setModel(modelo_jtabla);
        Vector<String> titulo  = new Vector<String>();
         titulo.add("codigo ingrediente");
         titulo.add("nombre ingrediente");
         titulo.add("cantidad");
         modelo_jtabla.setColumnIdentifiers(titulo);
         cproducto.cargarCombos();
         button_agregar.addActionListener (cproducto);
         button_eliminar.addActionListener(cproducto);
         button_finalizar.addActionListener(cproducto);
         cancelar();
    }

    public void cancelar()
    {
    texto_nombre.setText("");
    texto_precio.setText("");
    cantidad.setValue(0);
    modelo_jtabla.setRowCount(0);

    }

    public void setButton_agregar(JButton button_agregar) {
        this.button_agregar = button_agregar;
    }

    public JButton getButton_eliminar() {
        return button_eliminar;
    }

    public void setButton_eliminar(JButton button_eliminar) {
        this.button_eliminar = button_eliminar;
    }

    public JButton getButton_finalizar() {
        return button_finalizar;
    }

    public void setButton_finalizar(JButton button_finalizar) {
        this.button_finalizar = button_finalizar;
    }

    public JButton getButton_salir() {
        return button_salir;
    }

    public void setButton_salir(JButton button_salir) {
        this.button_salir = button_salir;
    }

    public JSpinner getCantidad() {
        return cantidad;
    }

    public void setCantidad(JSpinner cantidad) {
        this.cantidad = cantidad;
    }

    public JComboBox getLista_categoria() {
        return lista_categoria;
    }

    public void setLista_categoria(JComboBox lista_categoria) {
        this.lista_categoria = lista_categoria;
    }

    public JComboBox getLista_ingrediente() {
        return lista_ingrediente;
    }

    public void setLista_ingrediente(JComboBox lista_ingrediente) {
        this.lista_ingrediente = lista_ingrediente;
    }

    public JTable getTabla_producto() {
        return tabla_producto;
    }

    public void setTabla_producto(JTable tabla_producto) {
        this.tabla_producto = tabla_producto;
    }

    public JTextField getTexto_nombre() {
        return texto_nombre;
    }

    public void setTexto_nombre(JTextField texto_nombre) {
        this.texto_nombre = texto_nombre;
    }

    public JTextField getTexto_precio() {
        return texto_precio;
    }

    public void setTexto_precio(JTextField texto_precio) {
        this.texto_precio = texto_precio;
    }


    public JButton getButton_agregar() {
        return button_agregar;
    }

    public DefaultTableModel getModelo_jtabla() {
        return modelo_jtabla;
    }

    public void setModelo_jtabla(DefaultTableModel modelo_jtabla) {
        this.modelo_jtabla = modelo_jtabla;
    }




    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        tabla_producto = new javax.swing.JTable();
        lista_ingrediente = new javax.swing.JComboBox();
        lista_categoria = new javax.swing.JComboBox();
        texto_precio = new javax.swing.JTextField();
        texto_nombre = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        button_eliminar = new javax.swing.JButton();
        button_agregar = new javax.swing.JButton();
        button_finalizar = new javax.swing.JButton();
        button_salir = new javax.swing.JButton();
        cantidad = new javax.swing.JSpinner();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().setLayout(null);

        tabla_producto.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "codigo Ingredientes", "nombre", "cantidad"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(tabla_producto);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(20, 280, 452, 310);

        lista_ingrediente.setModel(new javax.swing.DefaultComboBoxModel(new String[] {  }));
        getContentPane().add(lista_ingrediente);
        lista_ingrediente.setBounds(180, 160, 290, 28);

        lista_categoria.setModel(new javax.swing.DefaultComboBoxModel(new String[] {}));
        getContentPane().add(lista_categoria);
        lista_categoria.setBounds(180, 120, 290, 28);
        getContentPane().add(texto_precio);
        texto_precio.setBounds(180, 80, 290, 28);
        getContentPane().add(texto_nombre);
        texto_nombre.setBounds(180, 40, 290, 28);

        jLabel1.setText("Registrar Producto");
        getContentPane().add(jLabel1);
        jLabel1.setBounds(10, 0, 220, 30);

        jLabel2.setText("Nombre ");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(50, 50, 100, 18);

        jLabel3.setText("precio");
        getContentPane().add(jLabel3);
        jLabel3.setBounds(50, 80, 80, 18);

        jLabel4.setText("categoria");
        getContentPane().add(jLabel4);
        jLabel4.setBounds(50, 120, 90, 20);

        jLabel5.setText("ingrediente");
        getContentPane().add(jLabel5);
        jLabel5.setBounds(50, 160, 140, 18);

        jLabel6.setText("cantidad");
        getContentPane().add(jLabel6);
        jLabel6.setBounds(50, 200, 90, 18);

        button_eliminar.setText("eliminar");
        getContentPane().add(button_eliminar);
        button_eliminar.setBounds(380, 200, 100, 30);

        button_agregar.setText("agregar");
        getContentPane().add(button_agregar);
        button_agregar.setBounds(260, 200, 110, 30);

        button_finalizar.setText("Finalizar");
        getContentPane().add(button_finalizar);
        button_finalizar.setBounds(263, 240, 110, 30);

        button_salir.setText("salir");
        button_salir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                button_salirActionPerformed(evt);
            }
        });
        getContentPane().add(button_salir);
        button_salir.setBounds(380, 240, 100, 30);
        getContentPane().add(cantidad);
        cantidad.setBounds(180, 200, 50, 28);
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-497)/2, (screenSize.height-630)/2, 497, 630);
        
        texto_precio.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
            	texto_precioKeyTyped(evt);
            }
        });
        texto_nombre.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
            	texto_nombreKeyTyped(evt);
            }
        });
        
        
        
        
    }// </editor-fold>//GEN-END:initComponents

    private void button_salirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_button_salirActionPerformed
        // TODO add your handling code here:
        dispose();
    }//GEN-LAST:event_button_salirActionPerformed
    

    private void texto_precioKeyTyped(java.awt.event.KeyEvent evt) {
    	if(ya_instancio_n)
    	{
    		valida_total.get(indicen).validacion(evt);
    		System.out.println("numero");
    	}
    	else
    	{
    		indicen=indice;
    		valida_total.add(indicen,new validacion_abstracta_refinada(new validar_numeros()));
    		ya_instancio_n=true;
    		indice++;
    		valida_total.get(indicen).validacion(evt);
    	}
    }
    
    private void texto_nombreKeyTyped(java.awt.event.KeyEvent evt) {
        // TODO add your handling code here:
    	if(ya_instancio_l)
    	{
    		valida_total.get(indicel).validacion(evt);
    		System.out.println("letras");
    	}
    	else
    	{
    		indicel=indice;
    		valida_total.add(indicel,new validacion_abstracta_refinada(new validar_letras()));
    		valida_total.get(indicel).validacion(evt);
    		ya_instancio_l=true;
    		indice++;
    	}
    }   
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new v_producto().setVisible(true);
            }
        });
    }




    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton button_agregar;
    private javax.swing.JButton button_eliminar;
    private javax.swing.JButton button_finalizar;
    private javax.swing.JButton button_salir;
    private javax.swing.JSpinner cantidad;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JComboBox lista_categoria;
    private javax.swing.JComboBox lista_ingrediente;
    private javax.swing.JTable tabla_producto;
    private javax.swing.JTextField texto_nombre;
    private javax.swing.JTextField texto_precio;
    // End of variables declaration//GEN-END:variables

}
